package com.example.personblog.controller;

import org.springframework.web.bind.annotation.*;

//@RestController意味着HelloController类变成一个控制器了,可以接收客户端的请求了
@RestController
public class HelloController {
    //具体怎么接收呢?需要在接收器(也就是类中)中添加一个公开的方法
    //还需要在方法上添加一个注解 @GetMapping,意味着浏览器里发送http协议中的get请求来访问hello()方法,()里需要写一个明确的链接地址
    // 浏览qi如何访问呢? https://www.baidu.com/s/xx (域名:www.baidu.com)(路径:s/xx)我们在getmapping()里的/hello其实就是s/xx这一部分路径
    //而域名如果要部署到本机那就是 http://localhost:8080/hello,这样就可以访问我们控制器里的hello方法了

    //(value = "/hello",method= RequestMethod.GET)这样意味着只能接收GET请求,等价于@GetMapping("/hello")
    //参数传递
    //前端传递的信息后端如何去接收呢?以下的网站写出前端传递的用户名为张三,电话号为13199924090
    //http://localhost:8080/hello?nickname=zhangsan&phone=13199924090 多个参数用&拼接起来 这是互联网上常见的查询名字方式
    //需要在原有的方法上加一个参数名为网站上所显示的名nickname
    @RequestMapping(value = "/hello",method= RequestMethod.GET)//GetMapping是简写,意味着可以接收前端的请求了,前端必须发送GET请求
    public String hello(String nickname,String phone){
        System.out.println(phone);
        return"你好"+nickname+phone;//return 语句的作用就是向发起请求的前端返回数据。
    }

    @RequestMapping(value = "/getTest1,method=RequestMethod.GET")
    //http://localhost:8080/gettest1?nickname=xxx
    //@RequestParam 注解是做参数映射,当参数名称和方法名称不一致,需要告诉的是映射的是nickname,必须传递nickname否则不会传递name
    public String getTest1(@RequestParam("nickname") String name){
        System.out.println("nickname:"+name);
        return "GET请求";
    }
}
